//*********************************************************
//
//    Copyright (c) Microsoft. All rights reserved.
//    This code is licensed under the Apache License, Version 2.0.
//    THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF
//    ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY
//    IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR
//    PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.
//
//*********************************************************

namespace Microsoft.Research.ScientificWorkflow.Helpers
{
	#region Using Directives

	using System;
	using System.Collections.Generic;
	using System.Text;
	using System.Collections;
	using System.ComponentModel;
	using System.Globalization;
    using Microsoft.Research.ScientificWorkflow.NetCDF.CSharpAPI;

	#endregion

	#region Variable Class

	[Serializable]
	public class ClampingVariable
	{
		#region Private Fields

		private string variableName;
		private string minValue;
		private string maxValue;
		private string optionalValue;


		#endregion

		#region Public Properties

		public string VariableName
		{
			get { return variableName; }
			set { variableName = value; }
		}


		public string MinValue
		{
			get { return minValue; }
			set { minValue = value; }
		}

		//[DescriptionAttribute("Max value. Any value greater than max value will be set to Max valuse. The type of MaxValue must match the datatype of the variable")]
		public string MaxValue
		{
			get { return maxValue; }
			set { maxValue = value; }
		}

		public string OptionalValue
		{
			get { return optionalValue; }
			set { optionalValue = value; }
		}


		#endregion

		public ClampingVariable()
		{
			this.variableName = string.Empty;
			this.minValue = string.Empty;
			this.maxValue = string.Empty;
			this.optionalValue = string.Empty;
		}

		#region Overriden Methods

		public override string ToString()
		{
			return this.variableName + "[" + this.minValue + ","  + this.maxValue + "] <- " + this.optionalValue  ;
		}

		#endregion

	}

	#endregion
}
